package com.cancan.demo.apidebouncing.response;

public enum HttpCodeEnum {
    // 继续
    GO_ON(100, "继续"),
    // 处理成功
    OK(200, "成功"),
    // 已创建
    CREATED(201, "已创建"),
    // 已接受
    ACCEPTED(202, "已接受"),

    // 请求成功，但结果有多种选择
    MULTIPLE_CHOICES(300, "多种选择"),
    // 请求成功，但是资源被永久转移
    MOVED_PERMANENTLY(301, "资源已被转移"),

    // 错误的请求
    BAD_REQUEST(400, "错误的请求"),
    // 没有提供认证信息
    UNAUTHORIZED(401, "未提供认证信息"),
    // 为以后需要所保留的状态码
    PAYMENT_REQUIRED(402, "Payment Required"),
    // 请求的资源不允许访问
    FORBIDDEN(403, "禁止访问"),
    // 请求的内容不存在
    NOT_FOUND(404, "请求的内容不存在"),

    USER_EXIST(405,"用户已经存在"),
    // 请求的资源并不符合要求
    NOT_ACCEPTABLE(406, "请求的资源不符合要求"),
    // 客户端请求超时
    REQUEST_TIMED_OUT(408, "请求超时"),
    // 请求体过大
    REQUEST_TOO_LARGE(413, "请求体过大"),
    // 类型不正确
    UNSUPPORTED_MEDIA_TYPE(415, "类型不正确"),

    // 服务器错误
    SERVER_ERROR(500, "服务器错误"),
    // 请求还没有被实现
    NOT_IMPLEMENTED(501, "请求内容尚未实现"),
    // 网关错误
    BAD_GATEWAY(502, "网关错误"),
    // 服务暂时不可用
    SERVER_UNAVAILABLE(503, "服务暂不可用"),
    // 网关超时
    GATEWAY_TIMED_OUT(504, "网关超时"),
    // 请求的 HTTP 版本不支持
    HTTP_VERSION_NOT_SUPPORTED(505, "请求的 HTTP 版本不支持"),
    //用户自定义异常
    BUSINESS_ERROR(10000,"业务异常"),
    //用户自定义异常
    USER_ERROR(10001,"用户相关异常"),
    //用户自定义异常
    PARAM_ERROR(10002,"参数异常")
    ;

    private int code;

    private String message;

    HttpCodeEnum(int code, String message) {
        this.code = code;
        this.message = message;
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public String getMessage(String message) {
        return String.format(this.message, message == null ? "" : message);
    }

    public void setMessage(String message) {
        this.message = message;
    }
}